//Name: abstract state
//Author:Max Charnock
//Last Updated: 20/05/2014
//Purpose: abstract state class used by enemies to determine what state they are in. 
#pragma once

//abstract state class
template<class EntityType>
class State
{
private:
	
public:
	//runs intial conditions when entering state
	virtual void Enter(EntityType*)=0;
	//Accumulates behaviors
	virtual void Execute(EntityType*)=0;
	//sets exit conditions
	virtual void Exit(EntityType*)=0;
};